+Mon Dec 29 01:36:22 2003 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkaccelmap.[hc]: (gtk_accel_map_lock_path,
+ gtk_accel_map_unlock_path): Add a way to lock individual accelerator
+ paths. (#73207, reported by Havoc Pennington)
+
Sat Dec 27 23:17:56 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (slide_idle_handler): use CHILD_VISIBLE
+Mon Dec 29 01:36:22 2003 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkaccelmap.[hc]: (gtk_accel_map_lock_path,
+ gtk_accel_map_unlock_path): Add a way to lock individual accelerator
+ paths. (#73207, reported by Havoc Pennington)
+
Sat Dec 27 23:17:56 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (slide_idle_handler): use CHILD_VISIBLE
+Mon Dec 29 01:36:22 2003 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkaccelmap.[hc]: (gtk_accel_map_lock_path,
+ gtk_accel_map_unlock_path): Add a way to lock individual accelerator
+ paths. (#73207, reported by Havoc Pennington)
+
Sat Dec 27 23:17:56 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (slide_idle_handler): use CHILD_VISIBLE
+Mon Dec 29 01:36:22 2003 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkaccelmap.[hc]: (gtk_accel_map_lock_path,
+ gtk_accel_map_unlock_path): Add a way to lock individual accelerator
+ paths. (#73207, reported by Havoc Pennington)
+
Sat Dec 27 23:17:56 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (slide_idle_handler): use CHILD_VISIBLE
+Mon Dec 29 01:36:22 2003 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtkaccelmap.[hc]: (gtk_accel_map_lock_path,
+ gtk_accel_map_unlock_path): Add a way to lock individual accelerator
+ paths. (#73207, reported by Havoc Pennington)
+
Sat Dec 27 23:17:56 2003 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbar.c (slide_idle_handler): use CHILD_VISIBLE
+Mon Dec 29 01:40:20 2003 Matthias Clasen <maclas@gmx.de>
+
+ * gtk/gtk-sections.txt: Add gtk_accel_map_{un,}lock_path.
+
Wed Dec 24 01:12:12 2003 Matthias Clasen <maclas@gmx.de>
* gtk/gtk-sections.txt: Add GtkClipboardTargetReceivedFunc,
guint std_accel_key;
guint std_accel_mods;
guint changed : 1;
+ guint locked : 1;
GSList *groups;
} AccelEntry;
entry->accel_key = accel_key;
entry->accel_mods = accel_mods;
entry->changed = FALSE;
+ entry->locked = FALSE;
g_hash_table_insert (accel_entry_ht, entry, entry);
}
}
entry->accel_key = accel_key;
entry->accel_mods = accel_mods;
entry->changed = TRUE;
+ entry->locked = FALSE;
}
return TRUE;
}
entry->changed = TRUE;
return simulate ? TRUE : FALSE;
}
+
+ if (entry->locked)
+ return FALSE;
/* nobody's interested, easy going */
if (!entry->groups)
entry->groups = g_slist_remove (entry->groups, accel_group);
}
+
+
+/**
+ * gtk_accel_map_lock_path:
+ * @accel_path: a valid accelerator path
+ *
+ * Locks the given accelerator path.
+ *
+ * Locking an accelerator path prevents its accelerator to be changed
+ * during runtime. A locked accelerator path can be unlocked by
+ * gtk_accel_map_unlock_path(). Refer to gtk_accel_map_change_entry()
+ * about runtime accelerator changes.
+ *
+ * Note that locking of individual accelerator paths is independent from
+ * locking the #GtkAccelGroup containing them. For runtime accelerator
+ * changes to be possible both the accelerator path and its #GtkAccelGroup
+ * have to be unlocked.
+ *
+ * Since: 2.4
+ **/
+void
+gtk_accel_map_lock_path (const gchar *accel_path)
+{
+ AccelEntry *entry;
+
+ g_return_if_fail (_gtk_accel_path_is_valid (accel_path));
+
+ entry = accel_path_lookup (accel_path);
+
+ if (entry)
+ entry->locked = TRUE;
+}
+
+/**
+ * gtk_accel_map_unlock_path:
+ * @accel_path: a valid accelerator path
+ *
+ * Unlocks the given accelerator path. Refer to gtk_accel_map_lock_path()
+ * about accelerator path locking.
+ *
+ * Since: 2.4
+ **/
+void
+gtk_accel_map_unlock_path (const gchar *accel_path)
+{
+ AccelEntry *entry;
+
+ g_return_if_fail (_gtk_accel_path_is_valid (accel_path));
+
+ entry = accel_path_lookup (accel_path);
+
+ if (entry)
+ entry->locked = FALSE;
+}
void gtk_accel_map_load_scanner (GScanner *scanner);
void gtk_accel_map_save_fd (gint fd);
+void gtk_accel_map_lock_path (const gchar *accel_path);
+void gtk_accel_map_unlock_path (const gchar *accel_path);
/* --- filter functions --- */
void gtk_accel_map_add_filter (const gchar *filter_pattern);